## Практикум `Методы классов`

### 1. Объявите класс с именем MediaPlayer с двумя методами:

`open(file)` - для открытия медиа-файла с именем `file` (создает локальное свойство filename со значением аргумента `file` в объекте класса MediaPlayer)
`play()` - для воспроизведения медиа-файла (выводит на экран строку `"Воспроизведение <название медиа-файла>"`)

Создайте два экземпляра этого класса с именами: `media1` и `media2`. 

Вызовите из них метод `open()` с аргументом "filemedia1" для объекта `media1` и "filemedia2" для объекта `media2`. 

После этого вызовите через объекты метод `play()`. 

При этом, на экране должно отобразиться две строки (без кавычек):

```
"Воспроизведение filemedia1"
"Воспроизведение filemedia2":
```


### 2.  Объявите класс с именем Graph и методами:

`set_data(data)` - передача набора данных data для последующего отображения (data - список числовых данных);
draw() - отображение данных (в том же порядке, что и в списке data)

и атрибутом:

`LIMIT_Y = [0, 10]`

Метод `set_data()` должен формировать локальное свойство data объекта класса `Graph`. 

Атрибут `data` должен ссылаться на переданный в метод список. 

Метод `draw()` должен выводить на экран список в виде строки из чисел, разделенных пробелами и принадлежащие заданному диапазону атрибута `LIMIT_Y` (границы включаются).

Создайте объект `graph_1` класса `Graph`, вызовите для него метод `set_data()` и передайте список:

```
[10, -5, 100, 20, 0, 80, 45, 2, 5, 7]
```
Затем, вызовите метод `draw()` через объект `graph_1`. На экране должна появиться строка с соответствующим набором чисел, записанных через пробел. Например (вывод без кавычек):

```
"10 0 2 5 7"
```




### 3. В текстовом файле содержатся строки с данными:


в формате: id, name, old, salary (записанные через пробел). Пример

```
1 Сергей 35 120000
2 Федор 23 12000
3 Иван 13 1200
```

для каждого столбца предумотрен соответствующий `id`
в формате: `id, name, old, salary` (записанные через пробел). 
То есть, каждая строка - это элемент списка `lst_in`.

Необходимо в класс `DataBase`:

```python
class DataBase:
    lst_data = []
    FIELDS = ('id', 'name', 'old', 'salary')
```
добавить два метода. 

* Первый метод:

`insert(self, data)` - для добавления в конец списка `lst_data` новых данных из переданного списка строк `data`.

При этом, каждый элемент в списке `lst_data` должен быть представлен словарем в формате:
```python
{'id': 'номер', 'name': 'имя', 'old': 'возраст', 'salary': 'зарплата'}
```
Например, строка `"1 Сергей 35 120000"` должна быть преобразована в словарь:

```python
{'id': '1', 'name': 'Сергей', 'old': '35', 'salary': '120000'}
```

и только после этого добавляется в список `lst_data`. И так для всех строк из переданного списка data в метод `insert()`.

* Второй метод:

`select(self, a, b)` - для возвращения нового списка из элементов существующего списка `lst_data` в диапазоне индексов [a; b] (включительно) (не id, а индексам списка). 

Следует иметь в виду, что граница `b` может превышать длину списка.

Примечание: в этой задаче число элементов в строке (разделенных пробелом) всегда совпадает с числом полей в коллекции FIELDS.

### Пример входной информации (Sample Input):
```
1 Сергей 35 120000
2 Федор 23 12000
3 Иван 13 1200
```


